Быстрый счётчик
Сделаем счётчик фронтов сигнала на 1-ом быстром входе. Вспомним, что если бы это делали на «обычном цилке ПЛК», то нам не удалось бы ловить импульсы менее 1 миллисекунды. Конечно, можно просто перевести быстрый вход в режим «быстрого счётчика», но напишем такую программу на PRU – она вполне может выступать базовым блоком для более сложных программ.
Если у вас открыта среда Hardella IDE, то можете либо
открыть код примера в среде, либо создать свой проект на основе примера (File
> New
> Project
> Fast counter
).
Укажем длительность цилка ПЛК в 1 микросекунду:
Таким образом, программа будет опрашивать входы не реже 1 раза в микросекунду. Т.е. можно будет уверенно ловить импульсы на частоте 250 кГц.
Программа счётчика нехитрая, но обратим внимание на следующее:
-
В условии
IF
используетсяR_TRIG
, но в секции объявлений переменных триггер не объявлен. Как так? Очень просто: в Hardella можно не объявлять переменные для «одноразовых» функциональных блоков. -
Переменная
counter
физически находится в памяти PRU, но она отмечена на синхронизацию с основным циклом ПЛК. Таким образом, результат быстрого счётчика будет доступен в основной программе на CoDeSys.
Комментировать